home *** CD-ROM | disk | FTP | other *** search
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.net.Socket;
- import java.net.UnknownHostException;
- import vrml.BaseNode;
- import vrml.Browser;
- import vrml.Event;
- import vrml.field.ConstSFBool;
- import vrml.field.ConstSFRotation;
- import vrml.field.ConstSFVec3f;
- import vrml.field.SFNode;
- import vrml.field.SFRotation;
- import vrml.field.SFVec3f;
- import vrml.node.Node;
- import vrml.node.Script;
-
- public class MuClient extends Script {
- public static final String HOST = "localhost";
- public static final int AVATARS = 3;
- Socket socket;
- // $FF: renamed from: in java.io.DataInputStream
- DataInputStream field_0;
- DataOutputStream out;
- // $FF: renamed from: b vrml.Browser
- Browser field_1;
- SFVec3f[] avatarPosition = new SFVec3f[3];
- SFRotation[] avatarRotation = new SFRotation[3];
- float[] coord;
- float[] rotation;
- // $FF: renamed from: id int
- int field_2;
- boolean connected = false;
-
- public void initialize() {
- this.field_1 = ((BaseNode)this).getBrowser();
- Object var1 = null;
-
- for(int var2 = 0; var2 < 3; ++var2) {
- try {
- Node var4 = (Node)((SFNode)((Script)this).getField("avatar" + var2)).getValue();
- this.avatarPosition[var2] = (SFVec3f)var4.getExposedField("translation");
- this.avatarRotation[var2] = (SFRotation)var4.getExposedField("rotation");
- } catch (Exception var3) {
- this.field_1.setDescription("can not get avatar");
- return;
- }
- }
-
- this.coord = new float[3];
- this.rotation = new float[4];
- }
-
- public void processEvent(Event var1) {
- if (var1.getName().equals("entered")) {
- ConstSFBool var2 = (ConstSFBool)var1.getValue();
- if (var2.getValue() && !this.connected) {
- try {
- this.socket = new Socket("localhost", 4130);
- this.field_0 = new DataInputStream(this.socket.getInputStream());
- this.out = new DataOutputStream(this.socket.getOutputStream());
- this.field_2 = this.field_0.readInt();
- new MuReceiver(this.field_0, this);
- this.connected = true;
- return;
- } catch (UnknownHostException var3) {
- this.field_1.setDescription("Unknown host: localhost");
- return;
- } catch (Exception var4) {
- this.field_1.setDescription("Connection error");
- return;
- }
- }
- } else {
- if (var1.getName().equals("myPosition")) {
- ((ConstSFVec3f)var1.getValue()).getValue(this.coord);
-
- try {
- this.out.writeInt(this.field_2);
- this.out.writeInt(1);
- this.out.writeFloat(this.coord[0]);
- this.out.writeFloat(this.coord[1]);
- this.out.writeFloat(this.coord[2]);
- return;
- } catch (IOException var5) {
- this.field_1.setDescription("Fail to send position to server: " + var5);
- return;
- }
- }
-
- if (var1.getName().equals("myOrientation")) {
- ((ConstSFRotation)var1.getValue()).getValue(this.rotation);
-
- try {
- this.out.writeInt(this.field_2);
- this.out.writeInt(2);
- this.out.writeFloat(this.rotation[0]);
- this.out.writeFloat(this.rotation[1]);
- this.out.writeFloat(this.rotation[2]);
- this.out.writeFloat(this.rotation[3]);
- return;
- } catch (IOException var6) {
- this.field_1.setDescription("Fail to send orientation to server: " + var6);
- return;
- }
- }
- }
-
- }
-
- public void updatePosition(int var1, float var2, float var3, float var4) {
- this.avatarPosition[var1].setValue(var2, var3, var4);
- }
-
- public void updateOrientation(int var1, float var2, float var3, float var4, float var5) {
- this.avatarRotation[var1].setValue(var2, var3, var4, var5);
- }
-
- public void shutdown() {
- try {
- this.out.close();
- this.field_0.close();
- this.socket.close();
- } catch (Exception var1) {
- this.field_1.setDescription("Connection close error");
- }
- }
- }
-